﻿using System;
using System.Data;
using System.Configuration;
using System.Web.UI.WebControls;
using System.IO;
using BLL;

namespace Web.forms
{
    public partial class CierreFinal : Pagina
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack) return;

            btnCierreFinal.OnClientClick = "if (!confirm('¿Desea realizar el Cierre Periodo para el período \\'" + PeriodoActual.Glosa + "\\'?')) return false;";
            //ClientScript.RegisterClientScriptInclude(GetType(), "sc" + btnCargar.ClientID, "$('" + btnCargar.ClientID + "').click(function(){ $('#dvLoading').show(); $('#dvLoading').fadeOut(2000); });");

            if (PeriodoActual.Estado.EstadoId.Equals(5))
            {
                lblPeriodo.Text = string.Format("Período '{0}' se encuentra en Cierre Periodo", PeriodoActual.Glosa);

                txtArchivoMaestroSAP.Enabled = false;
                txtArchivoMaestroSAP.Visible = false;
                //btnCargar.Enabled = false;
                //btnCargar.Visible = false;

            }
            else
            {

                lblPeriodo.Text = "Período: '" + PeriodoActual.Glosa + "'";
                lblPeriodo.Enabled = true;
                lblPeriodo.Visible = true;
                btnCierreFinal.Enabled = true;

                //if (Carga.ExisteReporteCargaInicial(PeriodoActual.Glosa.ToString()))
                //{
                //    .Visible = true;
                //    .Enabled = true;
                //    btnVerReporte.Enabled = true;
                //    btnVerReporte.Visible = true;
                //}
                //else
                //{
                //    btnAjuste.Visible = false;
                //    btnAjuste.Enabled = false;
                //    btnVerReporte.Enabled = false;
                //    btnVerReporte.Visible = false;
                //}

                txtArchivoMaestroSAP.Enabled = true;
                txtArchivoMaestroSAP.Text = ArchivoMaestroSAP;
                txtArchivoMaestroSAP.Focus();

                //btnCargar.Enabled = true;

            }
        }

        //protected void btnVerReporte_Click(object sender, EventArgs e)
        //{
        //    Redirect(ConfigurationManager.AppSettings["rptCargaInicial"].Replace("[Periodo]", PeriodoActual.Glosa.ToString()), "_blank", "");
        //}

        protected void btnCierreFinal_Click(object sender, EventArgs e)
        {
            var objCarga = new Cierre();

            if (!objCarga.CierreFinal(PeriodoActual.Llave))
            {
                PopUpMessage(string.Format("Error - Cierre Periodo '{0}' " + objCarga.Mensaje.ToString() + ".-", PeriodoActual.Glosa));
                return;
            }
            else
            {
                //btnCargar.Visible = false;
                //btnAjuste.Visible = false;
                txtArchivoMaestroSAP.Enabled = false;

                //PopUpMessage(string.Format("El Cierre Periodo '{0}' " + objCarga.Mensaje.ToString() + ".-", PeriodoActual.Glosa));

                Redirect(ConfigurationManager.AppSettings["rptCuadFinalGeneral"].Replace("[ServidorReportingServices]", ServidorReportingServices).Replace("[CarpetaReportingServices]", CarpetaReportingServices).Replace("[Periodo]", PeriodoActual.Llave), "_blank", "");
            }
        }

        protected void btnCargar_Click(object sender, EventArgs e)
        {
            if (txtArchivoMaestroSAP.Text.Trim().Length < 1)
            {
                PopUpMessage("Debe ingresar un archivo");
                txtArchivoMaestroSAP.Focus();
                return;
            }

            if (!(Path.GetExtension(txtArchivoMaestroSAP.Text.Trim()).Equals(".txt")))
            {
                PopUpMessage("Debe ingresar un archivo plano (*.txt)");
                txtArchivoMaestroSAP.Focus();
                return;
            }

            lblMensaje.Text = "Cargando...";
            lblMensaje.Visible = true;

            var objCarga = new Cierre();


            if (!objCarga.CargaArchivoSAP(PeriodoActual.Llave, txtArchivoMaestroSAP.Text))
            {
                lblMensaje.Text = "";
                lblMensaje.Visible = false;

                PopUpMessage(objCarga.Mensaje);
                return;
            }

            lblMensaje.Text = "";
            lblMensaje.Visible = false;

            //btnVerReporte.Enabled = true;
            //btnVerReporte.Visible = true;
            btnCierreFinal.Enabled = true;

            PopUpMessage(objCarga.Mensaje);
        }

        void Carga_GridView()
        {
            var objCarga = new Cierre();
            var dt = objCarga.ObtenerAjuste(PeriodoActual.Llave);
            //dt.ObtenerDistribucion(Periodo.ToString());
            Carga_GridView(ref grvAjusteFinal, ref dt);

        }
        protected static void Carga_GridView(ref GridView gv, ref DataTable tbl)
        {
            gv.DataSource = tbl;
            gv.DataBind();
        }
    }
}